#include <variant>
#include <iostream>
#include <string>

// 定义一个可以存储 int、double 或 std::string 的 variant
std::variant<int, double, std::string> myVariant;

int main() {
    myVariant = 20;
    std::cout << std::get<int>(myVariant) << '\n'; // 安全地访问 int

    myVariant = "Hello, Variant!";
    std::cout << std::get<std::string>(myVariant) << '\n'; // 安全地访问 std::string

    // 通过 std::visit 自动处理所有可能的类型
    std::visit([](auto&& arg) { std::cout << arg << '\n'; }, myVariant);
}